package com.efo.common.result;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @Package: com.efo.common.result
 * @Description: 返回信息包装类
 * @Author CHY
 * @Create 2021年11月08日 09时22分26秒
 */
@Data
@NoArgsConstructor
public class Result<T> implements Serializable {
    public String code;
    public String msg;
    private T data;

    /**
     * @Author: CHY
     * @Date: 2021年11月08日 09时39分01秒
     * @Description: 根据code，msg创建一个Result
     * @param code
     * @param msg
     * @return
     **/
    public Result(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * @Author: CHY
     * @Date: 2021年11月08日 09时39分19秒
     * @Description: 根据code，msg，data创建一个Result
     * @param code
     * @param msg
     * @param data
     * @return
     **/
    public Result(String code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    /**
     * @Author: CHY
     * @Date: 2021年11月08日 09时39分30秒
     * @Description: 根据枚举创建一个Result
     * @param resultEnum
     * @return
     **/
    public Result(ResultEnum resultEnum) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();
    }

    /**
     * @Author: CHY
     * @Date: 2021年11月08日 02时48分00秒
     * @Description: 根据枚举、data创建一个Result
     * @param resultEnum
     * @param data
     * @return
     **/
    public Result(ResultEnum resultEnum, T data) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();
        this.data = data;
    }
}
